Workflows may allow enterprises to formalize processes by which they achieve their objectives. For example, a merchant selling goods may have a workflow for obtaining the goods, inputting orders and/or payments for the goods, selecting a shipper for shipping the goods, and updating an inventory record based on the sale.
Workflows may require multiple processes or workflow steps to be performed. The workflow steps may be dependent upon one another; for example, a workflow step may only be begun upon completion of one or more prior workflow steps. Additionally, the workflow steps may have more complex dependencies.
A workflow system may automate, to at least some degree, workflows in an enterprise by creating and monitoring workflows to execute various tasks. A workflow system may be developed using a graphical designer, a programming language, or a combination of the two. For code-based workflow design, workflow applications may be developed with any general-purpose programming language, but specialized workflow languages also exist, such as Business Process Model Notation (BPMN), XML Process Definition Language (XPDL), Yet Another Workflow Language (YAWL) and Simple Conceptual Unified Flow Language (SCUFL).
Such workflow systems are generally prone to attacks from malicious parties. A malicious party may masquerade as a workflow step performer without detection and manipulate data associated with the workflow steps (i.e., mark a workflow step as complete without performing the workflow step or remove one or more workflows from the workflow system). Thus, it is desirable to provide a workflow system that is not vulnerable to tampering by malicious parties.
Aspects described herein may address these and other problems, and generally improve the quality, efficiency, and security of workflow applications by using distributed ledgers and smart contracts on a blockchain network for storing workflows and validating completion of workflow steps by workflow step performers.